package com.lnsf.bookstore.common.util;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;

import org.apache.commons.io.FileUtils;
import org.apache.log4j.Logger;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;

/**
 * 上传文件
 * 创建人：FH Q313596790
 * 创建时间：2014年12月23日
 * @version
 */
public class FileUpload {
	private static Logger logger = Logger.getLogger(FileUpload.class);

	/**上传文件
	 * @param file 			//文件对象
	 * @param filePath		//上传路径
	 * @param fileName		//文件名
	 * @return  文件名
	 */
	public static String fileUp(MultipartFile file, String filePath, HttpServletRequest request){
		String extName = ""; // 扩展名格式：
		String fileName = file.getOriginalFilename();
		String rootPath="";
		try {
			if (file.getOriginalFilename().lastIndexOf(".") >= 0){
				extName = fileName.substring(fileName.lastIndexOf(".")+1);
			}
			rootPath = request.getSession().getServletContext().getRealPath("/")+"uploadFiles/";
			logger.info("存储照片的位置rootPath"+rootPath);
			//rootPath = request.getSession().getServletContext().getRealPath("/");
			//rootPath = "/uploadFiles/";
			System.out.println(rootPath);
			copyFile(file,rootPath,fileName);
			//存进数据库的路径
			rootPath = "/uploadFiles/";
			System.out.println(rootPath+fileName);
		} catch (IOException e) {
			System.out.println(e);
		}
		return rootPath+fileName;
	}
	
	/**
	 * 写文件到当前目录的upload目录中
	 * @param file
	 * @param realName
	 * @throws IOException
	 */
	private static String copyFile(MultipartFile file, String dir, String realName)
			throws IOException {
		File targetFile = mkdirsmy(dir,realName);
		file.transferTo(targetFile);
		return dir+realName;
	}
	
	
	/**判断路径是否存在，否：创建此路径
	 * @param dir  文件路径
	 * @param realName  文件名
	 * @throws IOException 
	 */
	public static File mkdirsmy(String dir, String realName) throws IOException{
		File file = new File(dir, realName);
		if (!file.exists()) {
			file.mkdirs();
		}
		return file;
	}

}
